home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso / tracker / amusic11 / sources / asm / play_asm.asm < prev    next >
Assembly Source File  |  1995-12-28  |  2KB  |  103 lines

  1. ;Playdemo.asm
  2. ;(Plays a packed amd)
  3. ;
  4. ;How to use the player of Amusic (in polling mode!!!)
  5. ;6.12.1995 by Conqueror / ε£¥$$ì$
  6. ;
  7. ;Link this with amdobj.obj!!!
  8. ;
  9.  
  10. EXTRN _InitAdlib   : near
  11. EXTRN _AdlibPlayer : near
  12. EXTRN _StopAdlib   : near
  13.  
  14. EXTRN _AdlibState   : byte
  15.  
  16.  
  17. .model small
  18. .stack
  19. .386
  20. .data
  21.  
  22. FileName        db 14 dup(0)
  23. fhandle dw 0
  24.  
  25. WorkBuffer db 522h dup(?)
  26.  
  27.  
  28. ModBase label byte
  29.     db 50000 dup(?)
  30.  
  31.  
  32.  
  33. ;####### CODE #########
  34.  
  35. .code
  36. maincode:
  37.     mov     ax,@data
  38.     mov     ds,ax
  39.  
  40.     mov     bx,82h
  41.     mov     di,offset FileName
  42. fnam_loop:
  43.     mov     cl,es:[bx]
  44.     cmp     cl,0Dh
  45.     jz      fnam_eos
  46.     cmp     cl,20h
  47.     jz      fnam_eos
  48.     or      cl,cl
  49.     jz      fnam_eos
  50.     mov     ds:[di],cl
  51.     inc     di
  52.     inc     bx
  53.     cmp     bx,82h+12
  54.     jb      fnam_loop
  55. fnam_eos:
  56.     mov     es,ax
  57.  
  58.  
  59. ;------ Load the mod
  60.  
  61.     mov     ax,3D00h
  62.     mov     dx,offset FileName
  63.     xor     cl,cl
  64.     int     21h
  65.     jc      LoadError
  66.     mov     [fhandle],ax
  67.  
  68.     mov     ah,3Fh
  69.     mov     bx,[fhandle]
  70.     mov     cx,50000
  71.     mov     dx,offset ModBase
  72.     int     21h
  73.  
  74.     mov     ah,3Eh
  75.     mov     bx,[fhandle]
  76.     int     21h
  77.  
  78.  
  79. ;------ Init the mod!!!
  80.     mov     si,offset ModBase
  81.     mov     di,offset WorkBuffer
  82.     xor     al,al       ;0=irq_mode  1=polling_mode
  83.     call    _InitAdlib
  84.  
  85.     cmp     cs:[_AdlibState],0
  86.     jz      LoadError               ;No adlib present!?
  87.  
  88. PlayLoop:                       ;*** MAINLOOP *****
  89.  
  90.     in      al,60h
  91.     dec     al
  92.     jnz     short PlayLoop
  93.  
  94.  
  95. ;------ Fuck off!!!
  96.     call    _StopAdlib
  97.  
  98. LoadError:
  99.     mov     ah,04Ch         ;BYE
  100.     int     21h
  101.  
  102. end maincode
  103.